package com.jiangnan.util

import android.os.Build
import androidx.annotation.RequiresApi
import java.time.LocalDateTime
import java.time.format.DateTimeFormatter
import java.time.temporal.ChronoUnit

/**
 * 计算借阅状态：
 * - 如果还没到期，返回 "剩余 X 天"
 * - 如果已过期，返回 "逾期 X 天"
 *
 * @param borrowDateStr 借阅时间，ISO 格式："yyyy‑MM‑dd'T'HH:mm:ss"
 * @param maxDays       最大借阅天数，比如 30
 */
@RequiresApi(Build.VERSION_CODES.O)
fun formatBorrowStatus(borrowDateStr: String, maxDays: Long): String {
  // 1. 解析借阅时间
  val formatter = DateTimeFormatter.ISO_LOCAL_DATE_TIME
  val borrowDate = LocalDateTime.parse(borrowDateStr, formatter)

  // 2. 计算到期时间
  val dueDate = borrowDate.plusDays(maxDays)

  // 3. 当前时间
  val now = LocalDateTime.now()

  // 4. 只按“天”来算差值（把时间部分忽略），取 dueDate 的日期和 now 的日期做差
  val days = ChronoUnit.DAYS.between(now.toLocalDate(), dueDate.toLocalDate())

  return if (days >= 0) {
    // 还没过期
    "剩余 ${days} 天"
  } else {
    // 已经过期
    "逾期 ${-days} 天"
  }
}